#pragma once
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include "Estruturas.h"
#include "ManipulaCaptura.c"



int lerLinhaInteiro(FILE *file){
  char buffer[256];
  fgets(buffer, sizeof(buffer),file);
  return atoi(buffer);
}

char *lerLinhaString(FILE *file){
  char buffer[256];
  fgets(buffer,sizeof(buffer),file);
  int comp = strlen(buffer);
  char *linha = malloc(comp + 1);
  strcpy(linha,buffer);
  return linha;
}

char lerLinhaChar(FILE *file){
  char buffer[256];
  fgets(buffer,sizeof(buffer),file);
  return atoi(buffer);
}

void importarArquivo(FILE *file, const char* nomeArq, int trunc){
  FILE *arquivoText = fopen(nomeArq,"r");
  
  if(trunc){
    fseek(file,0,SEEK_SET);
    ftruncate(fileno(file),0);
  }else{
    fseek(file,0,SEEK_END);
  }

  Captura captura;
  
  while(!feof(arquivoText)){
    captura.id = lerLinhaInteiro(arquivoText);
    captura.idIndividuo = lerLinhaInteiro(arquivoText);
    captura.comprimento = lerLinhaInteiro(arquivoText);
    captura.largura = lerLinhaInteiro(arquivoText);
    captura.peso = lerLinhaInteiro(arquivoText);
    captura.data.ano = lerLinhaInteiro(arquivoText);
    captura.data.mes = lerLinhaChar(arquivoText);
    captura.data.dia = lerLinhaChar(arquivoText);
    captura.data.hora = lerLinhaChar(arquivoText);
    captura.data.min = lerLinhaChar(arquivoText);
    captura.local = lerLinhaString(arquivoText);    
    gravaCapturaArquivo(file,captura);    
    desalocaCaptura(captura);
  }
    
  fclose(arquivoText);
}

void menuImportacao(){
  int opcao = 0;
  FILE *file = fopen("capturas.data","rw+");  
  fseek(file, 0, SEEK_SET);
  char nomeArquivo[250];
  
    
    do
    {
        printf("\n\nMENU IMPORTACAO\n");
        printf("\n1 = Importar incluindo no final do arquivo de capturas");
        printf("\n2 = Importar reescrevendo o arquivo de capturas");        
        printf("\n0 = Sair\n\n");
        scanf("%d",&opcao);

        switch (opcao) {
	  case 1:{         
	      printf("\nDigite o nome de arquivo que deseja importar: ");
	      scanf("%s",nomeArquivo);
	      importarArquivo(file,nomeArquivo,0);	
	      printf("\nImportação com SUCESSO!");
	      break;
	  }
	  case 2:{
	      printf("\nDigite o nome de arquivo que deseja importar: ");
	      scanf("%s",nomeArquivo);
	      importarArquivo(file,nomeArquivo,1);
	      printf("\nImportação com SUCESSO!");
	      break;	  
	  }
        }

    } while (opcao != 0);
}

/*int main(){
  FILE *file = fopen("capturas.data","rw+");  
  fseek(file, 0, SEEK_SET);
  importarArquivo(file, "../arqteste.txt",1);
}*/